約 4,931,066 件
https://w.atwiki.jp/sulade/pages/20.html
tsubame 女に対してがっつばめ
https://w.atwiki.jp/sampleisbest/pages/588.html
開発環境 Microsoft Visual Studio Community 2019 実行環境 Microsoft Windows 10 Home (64bit) プロジェクト テンプレート C++ 空のプロジェクト プロジェクト名 dx9sample1 参考 座標変換済み頂点で2D板ポリゴンを描画:サンプルプログラム プロジェクト構成プロパティ リンカ―/システム/サブシステム Windows (/SUBSYSTEM WINDOWS) dx9sample1.cpp #pragma comment(lib, "d3d9") #include Windows.h #include d3d9.h #define SAFE_RELEASE(p) if(p){p- Release();p=NULL;} struct CUSTOM_VTX { float x, y, z, w; DWORD color; }; #define CUSTOM_FVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE) // 外部変数 LPDIRECT3D9 pD3D; LPDIRECT3DDEVICE9 pD3DDev; // 関数プロトタイプ宣言 LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); HWND InitWindow(HINSTANCE hInstance, int nCmdShow); HRESULT InitD3D(HWND hWnd); void Cleanup(); int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, LPWSTR, int nCmdShow) { HWND hWnd = InitWindow(hInstance, nCmdShow); if (!hWnd) return -1; HRESULT hr = InitD3D(hWnd); if (FAILED(hr)) { Cleanup(); return -1; } ShowWindow(hWnd, nCmdShow); CUSTOM_VTX vtx[] = { { 200, 200, 0, 1, 0xff0000ff }, { 200, 0, 0, 1, 0xff00ff00 }, { 400, 200, 0, 1, 0xffff0000 }, }; MSG msg = { 0 }; while (msg.message != WM_QUIT) { if (PeekMessage( msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage( msg); DispatchMessage( msg); } else { pD3DDev- Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1, 0); pD3DDev- BeginScene(); pD3DDev- SetFVF(CUSTOM_FVF); pD3DDev- DrawPrimitiveUP(D3DPT_TRIANGLELIST, 1, vtx, sizeof CUSTOM_VTX); pD3DDev- EndScene(); pD3DDev- Present(NULL, NULL, NULL, NULL); } } Cleanup(); return msg.wParam; } LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_DESTROY PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, msg, wParam, lParam); } HWND InitWindow(HINSTANCE hInstance, int nCmdShow) { WNDCLASSEX wc = { sizeof WNDCLASSEX }; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; wc.hbrBackground = HBRUSH(COLOR_WINDOW + 1); wc.lpszClassName = L"dx9sample1"; if (!RegisterClassEx( wc)) return NULL; DWORD deStyle = WS_OVERLAPPEDWINDOW ^ WS_MAXIMIZEBOX ^ WS_THICKFRAME; RECT rc = { 0, 0, 400, 400 }; AdjustWindowRect( rc, deStyle, FALSE); HWND hWnd = CreateWindow( wc.lpszClassName, L"dx9sample1", deStyle, CW_USEDEFAULT, 0, rc.right - rc.left, rc.bottom - rc.top, NULL, NULL, hInstance, NULL); return hWnd; } HRESULT InitD3D(HWND hWnd) { HRESULT hr; pD3D = Direct3DCreate9(D3D_SDK_VERSION); if (!pD3D) return E_FAIL; D3DPRESENT_PARAMETERS d3dpp = { 0 }; d3dpp.BackBufferFormat = D3DFMT_UNKNOWN; d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE; d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dpp.Windowed = TRUE; d3dpp.AutoDepthStencilFormat = D3DFMT_UNKNOWN; d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT; hr = pD3D- CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, d3dpp, pD3DDev); if (FAILED(hr)) return hr; return S_OK; } void Cleanup() { SAFE_RELEASE(pD3DDev); SAFE_RELEASE(pD3D); }
https://w.atwiki.jp/hmiku/pages/41862.html
【登録タグ 作T 作り手】 【ニコニコ動画】%E2%9D%96%20tsubame%20%E2%9D%96 特徴 処女作は「-sAkuRASIck_xxx-」。 現在は動画を削除している。 曲 -sAkuRASIck_xxx- CD まだCDが登録されていません 動画 コメント 名前 コメント
https://w.atwiki.jp/sampleisbest/pages/590.html
開発環境 Microsoft Visual Studio Community 2019 実行環境 Microsoft Windows 10 Home (64bit) プロジェクト テンプレート C++ 空のプロジェクト プロジェクト名 dx11sample2 dx11sample2.cpp #pragma comment(lib, "d3d11") #pragma comment(lib, "d3dcompiler") #include Windows.h #include wrl.h #include d3d11.h #include d3dcompiler.h #include DirectXMath.h #define HLSL_FILE L"dx11sample2.fx" using namespace Microsoft WRL; using namespace DirectX; struct ConstantBuffer { float frame; float f1, f2, f3;// filler }; // 外部変数 ComPtr ID3D11Device g_pDevice; ComPtr ID3D11DeviceContext g_pContext; ComPtr IDXGISwapChain g_pSwapChain; ComPtr ID3D11RenderTargetView g_pRenderTargetView; ComPtr ID3D11VertexShader g_pVertexShader; ComPtr ID3D11PixelShader g_pPixelShader; ComPtr ID3D11Buffer g_pConstantBuffer; float g_frame = 0; // 関数宣言 HWND InitWindow(HINSTANCE hInst); HRESULT InitDevice(HWND hWnd); void CleanupDevice(); LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); void Render(); int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, LPWSTR, int nCmdShow) { HWND hWnd = InitWindow(hInstance); if (!hWnd) return -1; if (FAILED(InitDevice(hWnd))) { CleanupDevice(); return -1; } ShowWindow(hWnd, nCmdShow); MSG msg = { 0 }; while (msg.message != WM_QUIT) { if (PeekMessage( msg, nullptr, 0, 0, PM_REMOVE)) { TranslateMessage( msg); DispatchMessage( msg); } else { Render(); } } CleanupDevice(); return int(msg.wParam); } HWND InitWindow(HINSTANCE hInst) { WNDCLASSEX wc = { sizeof WNDCLASSEX }; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.hInstance = hInst; wc.hCursor = LoadCursor(nullptr, IDC_ARROW); wc.hbrBackground = HBRUSH(COLOR_WINDOW + 1); wc.lpszClassName = L"dx11sample2"; if (!RegisterClassEx( wc)) return nullptr; DWORD dwStyle = WS_OVERLAPPEDWINDOW; RECT rc = { 0, 0, 400, 400 }; AdjustWindowRect( rc, dwStyle, FALSE); HWND hWnd = CreateWindow( wc.lpszClassName, L"dx11sample2", dwStyle, CW_USEDEFAULT, 0, rc.right - rc.left, rc.bottom - rc.top, nullptr, nullptr, hInst, nullptr); return hWnd; } HRESULT CompileShaderFromFile( LPCWSTR szFileName, LPCSTR szEntryPoint, LPCSTR szShaderModel, ID3DBlob** ppBlobOut) { DWORD dwShaderFlags = D3DCOMPILE_ENABLE_STRICTNESS; ComPtr ID3DBlob pErrorBlob; HRESULT hr = D3DCompileFromFile(szFileName, nullptr, nullptr, szEntryPoint, szShaderModel, dwShaderFlags, 0, ppBlobOut, pErrorBlob); if (FAILED(hr)) { if (pErrorBlob) { OutputDebugStringA((LPCSTR)pErrorBlob- GetBufferPointer()); } return hr; } return S_OK; } HRESULT InitDevice(HWND hWnd) { HRESULT hr; RECT rc; GetClientRect(hWnd, rc); UINT width = rc.right - rc.left; UINT height = rc.bottom - rc.top; DXGI_SWAP_CHAIN_DESC sd = { 0 }; sd.BufferDesc.Width = width; sd.BufferDesc.Height = height; sd.BufferDesc.RefreshRate.Numerator = 60; sd.BufferDesc.RefreshRate.Denominator = 1; sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;// 符号なし正規化整数 sd.SampleDesc.Count = 1; sd.SampleDesc.Quality = 0; sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; sd.BufferCount = 1; sd.OutputWindow = hWnd; sd.Windowed = TRUE; sd.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; D3D_FEATURE_LEVEL featureLevel; hr = D3D11CreateDeviceAndSwapChain( nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, 0, nullptr, 0, D3D11_SDK_VERSION, sd, g_pSwapChain, g_pDevice, featureLevel, g_pContext); if (FAILED(hr)) return hr; // レンダーターゲットビュー ComPtr ID3D11Texture2D pBackBuffer; hr = g_pSwapChain- GetBuffer(0, IID_PPV_ARGS( pBackBuffer)); if (FAILED(hr)) return hr; hr = g_pDevice- CreateRenderTargetView(pBackBuffer.Get(), nullptr, g_pRenderTargetView); if (FAILED(hr)) return hr; g_pContext- OMSetRenderTargets(1, g_pRenderTargetView.GetAddressOf(), nullptr); // ビューポート D3D11_VIEWPORT vp = { 0 }; vp.Width = (FLOAT)width; vp.Height = (FLOAT)height; vp.MinDepth = 0; vp.MaxDepth = 1; g_pContext- RSSetViewports(1, vp); // 頂点シェーダ ComPtr ID3DBlob pVSBlob; hr = CompileShaderFromFile(HLSL_FILE, "VS", "vs_5_0", pVSBlob); if (FAILED(hr)) { return hr; } hr = g_pDevice- CreateVertexShader( pVSBlob- GetBufferPointer(), pVSBlob- GetBufferSize(), nullptr, g_pVertexShader); if (FAILED(hr)) return hr; // ピクセルシェーダ ComPtr ID3DBlob pPSBlob; hr = CompileShaderFromFile(HLSL_FILE, "PS", "ps_5_0", pPSBlob); if (FAILED(hr)) { return hr; } hr = g_pDevice- CreatePixelShader( pPSBlob- GetBufferPointer(), pPSBlob- GetBufferSize(), nullptr, g_pPixelShader); if (FAILED(hr)) return hr; // 定数バッファ D3D11_BUFFER_DESC cb = { 0 }; cb.ByteWidth = sizeof ConstantBuffer; cb.Usage = D3D11_USAGE_DEFAULT; cb.BindFlags = D3D11_BIND_CONSTANT_BUFFER; hr = g_pDevice- CreateBuffer( cb, nullptr, g_pConstantBuffer); if (FAILED(hr)) return hr; return S_OK; } void CleanupDevice() { if (g_pContext) { g_pContext- ClearState(); } } LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDC hdc; switch (uMsg) { case WM_PAINT hdc = BeginPaint(hWnd, ps); EndPaint(hWnd, ps); break; case WM_DESTROY PostQuitMessage(0); break; default return DefWindowProc(hWnd, uMsg, wParam, lParam); } return 0; } void Render() { float ClearColor[4] = { 0, 0, 0, 1 }; g_pContext- ClearRenderTargetView(g_pRenderTargetView.Get(), ClearColor); ConstantBuffer cb; cb.frame = g_frame; g_pContext- UpdateSubresource(g_pConstantBuffer.Get(), 0, nullptr, cb, 0, 0); g_pContext- VSSetShader(g_pVertexShader.Get(), nullptr, 0); g_pContext- VSSetConstantBuffers(0, 1, g_pConstantBuffer.GetAddressOf()); g_pContext- PSSetShader(g_pPixelShader.Get(), nullptr, 0); // dx11sample2.fx g_pContext- IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); g_pContext- Draw(3, 0); // dx11sample2b.fx //g_pContext- IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); //g_pContext- Draw(18, 0); g_pSwapChain- Present(1, 0); // g_frame++; } dx11sample2.fx cbuffer ConstantBuffer register(b0) { float frame; }; struct VS_INPUT { uint vid SV_VertexID; }; struct PS_INPUT { float4 Pos SV_Position; float4 Color COLOR; }; // Vertex Shader PS_INPUT VS(VS_INPUT input) { PS_INPUT output = (PS_INPUT)0; float2 coord = float2((input.vid 1) 1, input.vid 1); float2 pos = coord - 0.5; float rad = radians(frame); float c = cos(rad); float s = sin(rad); pos = float2(pos.x * c - pos.y * s, pos.x * s + pos.y * c); output.Pos = float4(pos, 0, 1); output.Color = float4(coord, 1, 1); return output; } // Pixel Shader float4 PS(PS_INPUT input) SV_Target { return input.Color; } dx11sample2b.fx +... cbuffer ConstantBuffer register(b0) { float frame; }; struct VS_INPUT { uint vid SV_VertexID; }; struct PS_INPUT { float4 Pos SV_Position; float4 Coord TEXCOORD; }; matrix rotationX(float angle) { float c = cos(angle); float s = sin(angle); return matrix( 1, 0, 0, 0, 0, c, -s, 0, 0, s, c, 0, 0, 0, 0, 1); } matrix rotationY(float angle) { float c = cos(angle); float s = sin(angle); return matrix( c, 0, s, 0, 0, 1, 0, 0, -s, 0, c, 0, 0, 0, 0, 1); } matrix rotationZ(float angle) { float c = cos(angle); float s = sin(angle); return matrix( c, -s, 0, 0, s, c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); } static uint vertices[] = { 3,1,2,0, 0,4,2,6,3,7,1,5,0,4, 4,5,6,7 }; // Vertex Shader PS_INPUT VS(VS_INPUT input) { PS_INPUT output = (PS_INPUT)0; uint vtx = vertices[input.vid]; float3 coord = float3(vtx 1, (vtx 1) 1, (vtx 2) 1); float4 pos = float4((coord - 0.5) * float3(0.4, 0.8, 0.2), 1); matrix mWorld = mul(rotationY(radians(frame)), rotationX(radians(70.0))); output.Pos = mul(mWorld, pos); output.Pos.z += 0.5; output.Coord = float4(coord, 1); return output; } // Pixel Shader float4 PS(PS_INPUT input) SV_Target { float3 edge = step(0.48, abs(input.Coord.xyz - 0.5)); if (length(edge) 1.0) { return float4(0.5, 0.5, 0.5, 1); } return input.Coord; }
https://w.atwiki.jp/sampleisbest/pages/591.html
開発環境 Microsoft Visual Studio Community 2019 実行環境 Microsoft Windows 10 Home (64bit) プロジェクト テンプレート C++ 空のプロジェクト プロジェクト名 dx11sample1 dx11sample1.cpp #pragma comment(lib, "d3d11") #pragma comment(lib, "d3dcompiler") #include Windows.h #include wrl.h #include d3d11.h #include d3dcompiler.h #include DirectXMath.h using namespace Microsoft WRL; using namespace DirectX; struct SimpleVertex { XMFLOAT3 Pos; XMFLOAT3 Color; }; struct ConstantBuffer { XMMATRIX mWorld; }; ComPtr ID3D11Device g_pDevice; ComPtr ID3D11DeviceContext g_pContext; ComPtr IDXGISwapChain g_pSwapChain; ComPtr ID3D11RenderTargetView g_pRenderTargetView; ComPtr ID3D11VertexShader g_pVertexShader; ComPtr ID3D11PixelShader g_pPixelShader; ComPtr ID3D11InputLayout g_pVertexLayout; ComPtr ID3D11Buffer g_pVertexBuffer; ComPtr ID3D11Buffer g_pConstantBuffer; float g_theta = 0; // 関数宣言 HWND InitWindow(HINSTANCE hInst); HRESULT InitDevice(HWND hWnd); void CleanupDevice(); LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); void Render(); int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, LPWSTR, int nCmdShow) { HWND hWnd = InitWindow(hInstance); if (!hWnd) return -1; if (FAILED(InitDevice(hWnd))) { CleanupDevice(); return -1; } ShowWindow(hWnd, nCmdShow); MSG msg = { 0 }; while (msg.message != WM_QUIT) { if (PeekMessage( msg, nullptr, 0, 0, PM_REMOVE)) { TranslateMessage( msg); DispatchMessage( msg); } else { Render(); } } CleanupDevice(); return msg.wParam; } HWND InitWindow(HINSTANCE hInst) { WNDCLASSEX wc = { sizeof WNDCLASSEX }; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.hInstance = hInst; wc.hCursor = LoadCursor(nullptr, IDC_ARROW); wc.hbrBackground = HBRUSH(COLOR_WINDOW + 1); wc.lpszClassName = L"dx11sample1"; if (!RegisterClassEx( wc)) return nullptr; DWORD dwStyle = WS_OVERLAPPEDWINDOW; RECT rc = { 0, 0, 400, 400 }; AdjustWindowRect( rc, dwStyle, FALSE); HWND hWnd = CreateWindow( wc.lpszClassName, L"dx11sample1", dwStyle, CW_USEDEFAULT, 0, rc.right - rc.left, rc.bottom - rc.top, nullptr, nullptr, hInst, nullptr); return hWnd; } HRESULT CompileShaderFromFile( LPCWSTR szFileName, LPCSTR szEntryPoint, LPCSTR szShaderModel, ID3DBlob** ppBlobOut) { DWORD dwShaderFlags = D3DCOMPILE_ENABLE_STRICTNESS; ComPtr ID3DBlob pErrorBlob; HRESULT hr = D3DCompileFromFile(szFileName, nullptr, nullptr, szEntryPoint, szShaderModel, dwShaderFlags, 0, ppBlobOut, pErrorBlob); if (FAILED(hr)) { if (pErrorBlob) { OutputDebugStringA((LPCSTR)pErrorBlob- GetBufferPointer()); } return hr; } return S_OK; } HRESULT InitDevice(HWND hWnd) { HRESULT hr; UINT width = 400; UINT height = 400; DXGI_SWAP_CHAIN_DESC sd = { 0 }; sd.BufferDesc.Width = width; sd.BufferDesc.Height = height; sd.BufferDesc.RefreshRate.Numerator = 60; sd.BufferDesc.RefreshRate.Denominator = 1; sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;// 符号なし正規化整数 sd.SampleDesc.Count = 1; sd.SampleDesc.Quality = 0; sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; sd.BufferCount = 1; sd.OutputWindow = hWnd; sd.Windowed = TRUE; sd.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; D3D_FEATURE_LEVEL featureLevel; hr = D3D11CreateDeviceAndSwapChain( nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, 0, nullptr, 0, D3D11_SDK_VERSION, sd, g_pSwapChain, g_pDevice, featureLevel, g_pContext); // レンダーターゲットビュー ComPtr ID3D11Texture2D pBackBuffer; hr = g_pSwapChain- GetBuffer(0, IID_PPV_ARGS( pBackBuffer)); if (FAILED(hr)) return hr; hr = g_pDevice- CreateRenderTargetView(pBackBuffer.Get(), nullptr, g_pRenderTargetView); if (FAILED(hr)) return hr; g_pContext- OMSetRenderTargets(1, g_pRenderTargetView.GetAddressOf(), nullptr); // ビューポート D3D11_VIEWPORT vp = { 0 }; vp.Width = (FLOAT)width; vp.Height = (FLOAT)height; vp.MinDepth = 0; vp.MaxDepth = 1; g_pContext- RSSetViewports(1, vp); // 頂点シェーダ ComPtr ID3DBlob pVSBlob; hr = CompileShaderFromFile(L"dx11sample1.fx", "VS", "vs_5_0", pVSBlob); if (FAILED(hr)) { return hr; } hr = g_pDevice- CreateVertexShader( pVSBlob- GetBufferPointer(), pVSBlob- GetBufferSize(), nullptr, g_pVertexShader); if (FAILED(hr)) return hr; // ピクセルシェーダ ComPtr ID3DBlob pPSBlob; hr = CompileShaderFromFile(L"dx11sample1.fx", "PS", "ps_5_0", pPSBlob); if (FAILED(hr)) { return hr; } hr = g_pDevice- CreatePixelShader( pPSBlob- GetBufferPointer(), pPSBlob- GetBufferSize(), nullptr, g_pPixelShader); if (FAILED(hr)) return hr; // g_pContext- IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); // 入力レイアウト D3D11_INPUT_ELEMENT_DESC layout[] = { { "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }, { "COLOR", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0 }, }; hr = g_pDevice- CreateInputLayout(layout, ARRAYSIZE(layout), pVSBlob- GetBufferPointer(), pVSBlob- GetBufferSize(), g_pVertexLayout); if (FAILED(hr)) return hr; g_pContext- IASetInputLayout(g_pVertexLayout.Get()); // 頂点バッファ SimpleVertex vertices[] = { { XMFLOAT3(0, 0, 1), XMFLOAT3(0, 0, 1) }, { XMFLOAT3(0, 1, 0), XMFLOAT3(0, 1, 0) }, { XMFLOAT3(1, 0, 0), XMFLOAT3(1, 0, 0) }, }; D3D11_BUFFER_DESC vb = { 0 }; vb.ByteWidth = sizeof vertices; vb.Usage = D3D11_USAGE_DEFAULT; vb.BindFlags = D3D11_BIND_VERTEX_BUFFER; D3D11_SUBRESOURCE_DATA InitData = { 0 }; InitData.pSysMem = vertices; hr = g_pDevice- CreateBuffer( vb, InitData, g_pVertexBuffer); if (FAILED(hr)) return hr; UINT stride = sizeof SimpleVertex; UINT offset = 0; g_pContext- IASetVertexBuffers(0, 1, g_pVertexBuffer.GetAddressOf(), stride, offset); // 定数バッファ D3D11_BUFFER_DESC cb = { 0 }; cb.ByteWidth = sizeof ConstantBuffer; cb.Usage = D3D11_USAGE_DEFAULT; cb.BindFlags = D3D11_BIND_CONSTANT_BUFFER; hr = g_pDevice- CreateBuffer( cb, nullptr, g_pConstantBuffer); if (FAILED(hr)) return hr; return S_OK; } void CleanupDevice() { if (g_pContext) { g_pContext- ClearState(); } } LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDC hdc; switch (uMsg) { case WM_PAINT hdc = BeginPaint(hWnd, ps); EndPaint(hWnd, ps); break; case WM_DESTROY PostQuitMessage(0); break; default return DefWindowProc(hWnd, uMsg, wParam, lParam); } return 0; } void Render() { XMMATRIX world = XMMatrixRotationZ(g_theta); // float ClearColor[4] = { 0, 0, 0, 1 }; g_pContext- ClearRenderTargetView(g_pRenderTargetView.Get(), ClearColor); ConstantBuffer cb; //cb.mWorld = XMMatrixTranspose(world); cb.mWorld = world; g_pContext- UpdateSubresource(g_pConstantBuffer.Get(), 0, nullptr, cb, 0, 0); g_pContext- VSSetShader(g_pVertexShader.Get(), nullptr, 0); g_pContext- VSSetConstantBuffers(0, 1, g_pConstantBuffer.GetAddressOf()); g_pContext- PSSetShader(g_pPixelShader.Get(), nullptr, 0); g_pContext- Draw(3, 0); g_pSwapChain- Present(1, 0); // g_theta += 0.01f; } dx11sample1.fx cbuffer ConstantBuffer register(b0) { matrix World; }; struct VS_INPUT { float4 Pos POSITION; float4 Color COLOR; }; struct PS_INPUT { float4 Pos SV_Position; float4 Color COLOR; }; // Vertex Shader PS_INPUT VS(VS_INPUT input) { PS_INPUT output = (PS_INPUT)0; output.Pos = mul(World, input.Pos); output.Color = input.Color; return output; } // Pixel Shader float4 PS(PS_INPUT input) SV_Target { return input.Color; }
https://w.atwiki.jp/sampleisbest/pages/589.html
開発環境 Microsoft Visual Studio Community 2019 実行環境 Microsoft Windows 10 Home (64bit) プロジェクト テンプレート C++ 空のプロジェクト プロジェクト名 dx9sample2 参考 HLSLによる極短レンダリング:サンプルプログラム DirectX Software Development Kit (DXSDK_Jun10)をインストールする。 Download DirectX Software Development Kit from Official Microsoft Download Center プロジェクト構成プロパティ VC++ ディレクトリに以下のパスを追加する。 インクルード ディレクトリ C \Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include ライブラリディレクトリ C \Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86 dx9sample2.cpp #pragma comment(lib, "d3d9") #pragma comment(lib, "d3dx9") #include Windows.h #include d3d9.h #include d3dx9.h #define SAFE_RELEASE(p) if(p){p- Release();p=NULL;} struct CUSTOM_VTX { float x, y, z; DWORD color; }; #define CUSTOM_FVF (D3DFVF_XYZ | D3DFVF_DIFFUSE) // 外部変数 LPDIRECT3D9 pD3D; LPDIRECT3DDEVICE9 pD3DDev; LPD3DXEFFECT pEffect; IDirect3DVertexBuffer9* pVertex; IDirect3DVertexDeclaration9* pDecl; float t = 0; // 関数プロトタイプ宣言 LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); HWND InitWindow(HINSTANCE hInstance, int nCmdShow); HRESULT InitD3D(HWND hWnd); void Cleanup(); void Render(); int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, LPWSTR, int nCmdShow) { HWND hWnd = InitWindow(hInstance, nCmdShow); if (!hWnd) return -1; HRESULT hr = InitD3D(hWnd); if (FAILED(hr)) { Cleanup(); return -1; } ShowWindow(hWnd, nCmdShow); MSG msg = { 0 }; while (msg.message != WM_QUIT) { if (PeekMessage( msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage( msg); DispatchMessage( msg); } else { Render(); } } Cleanup(); return msg.wParam; } LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_DESTROY PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, msg, wParam, lParam); } HWND InitWindow(HINSTANCE hInstance, int nCmdShow) { WNDCLASSEX wc = { sizeof WNDCLASSEX }; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; wc.hbrBackground = HBRUSH(COLOR_WINDOW + 1); wc.lpszClassName = L"dx9sample2"; if (!RegisterClassEx( wc)) return NULL; DWORD deStyle = WS_OVERLAPPEDWINDOW ^ WS_MAXIMIZEBOX ^ WS_THICKFRAME; RECT rc = { 0, 0, 400, 400 }; AdjustWindowRect( rc, deStyle, FALSE); HWND hWnd = CreateWindow( wc.lpszClassName, L"dx9sample2", deStyle, CW_USEDEFAULT, 0, rc.right - rc.left, rc.bottom - rc.top, NULL, NULL, hInstance, NULL); return hWnd; } HRESULT InitD3D(HWND hWnd) { HRESULT hr; pD3D = Direct3DCreate9(D3D_SDK_VERSION); if (!pD3D) return E_FAIL; D3DPRESENT_PARAMETERS d3dpp = { 0 }; d3dpp.BackBufferFormat = D3DFMT_UNKNOWN; d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE; d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dpp.Windowed = TRUE; d3dpp.AutoDepthStencilFormat = D3DFMT_UNKNOWN; d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT; hr = pD3D- CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, d3dpp, pD3DDev); if (FAILED(hr)) return hr; // ファイルからシェーダを作成 LPD3DXBUFFER pError; hr = D3DXCreateEffectFromFile( pD3DDev, L"effect.fx", NULL, NULL, D3DXSHADER_DEBUG, 0, pEffect, pError); if (FAILED(hr)) { if (pError) { OutputDebugStringA((LPCSTR)pError- GetBufferPointer()); } SAFE_RELEASE(pError); return hr; } SAFE_RELEASE(pError); // x, y, z, ARGB CUSTOM_VTX vtx[] = { { 0, 0, 1, 0xff0000ff }, { 0, 1, 0, 0xff00ff00 }, { 1, 0, 0, 0xffff0000 }, }; // 頂点バッファの作成 hr = pD3DDev- CreateVertexBuffer( sizeof vtx, D3DUSAGE_WRITEONLY, CUSTOM_FVF, D3DPOOL_MANAGED, pVertex, NULL); void* pData; hr = pVertex- Lock(0, 0, pData, 0); memcpy(pData, vtx, sizeof vtx); hr = pVertex- Unlock(); // 頂点宣言の作成 D3DVERTEXELEMENT9 ve[] = { { 0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 }, { 0, 12, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR, 0 }, D3DDECL_END() }; hr = pD3DDev- CreateVertexDeclaration(ve, pDecl); return S_OK; } void Cleanup() { SAFE_RELEASE(pDecl); SAFE_RELEASE(pVertex); SAFE_RELEASE(pEffect); SAFE_RELEASE(pD3DDev); SAFE_RELEASE(pD3D); } void Render() { pD3DDev- Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1, 0); pD3DDev- BeginScene(); D3DXMATRIX mat; D3DXMatrixRotationZ( mat, t); pEffect- SetMatrix("mat", mat); t += 0.01f; pEffect- SetTechnique("T0"); UINT pass; pEffect- Begin( pass, 0); pEffect- BeginPass(0); pD3DDev- SetStreamSource(0, pVertex, 0, sizeof CUSTOM_VTX); pD3DDev- SetVertexDeclaration(pDecl); pD3DDev- DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1); pEffect- EndPass(); pD3DDev- EndScene(); pD3DDev- Present(NULL, NULL, NULL, NULL); } effect.fx struct VS_INPUT { float4 pos POSITION; float4 color COLOR; }; struct VS_OUTPUT { float4 pos POSITION; float4 color COLOR; }; // constant float4x4 mat; VS_OUTPUT VS(VS_INPUT input) { VS_OUTPUT output; //output.pos = input.pos; output.pos = mul(input.pos, mat); output.color = input.color; return output; } float4 PS(float4 color COLOR) COLOR { return color; } technique T0 { pass P0 { VertexShader = compile vs_2_0 VS(); PixelShader = compile ps_2_0 PS(); } }
https://w.atwiki.jp/nekotowannko/pages/24.html
テキストベースの古風なRPGですっ。 起動と初期のセーブゎ少々重ぃかも知れませんっ。。。 試作の為完成させるか不明ですがテストプレイしていただけるなら大歓迎ですっ* .。☆..。.(´∀`人) ご意見・ご感想・バグ報告等あれば下部コメント欄へお願ぃしますっ ペコリ(o_ _)o)) SampleGameゎ試作としてやってきましたが 一通りのシステムの構築が終わりRPGに必要な流れが確認できたので 製作を打ち切りとさせていただきます。 テストプレイしていただき誠にありがとぅございました。 次の作品ゎタイトル未定で左側メニューにコンテンツを追加しました。 宜しくお願い致しますっ! (動作確認済み)必要PCスペック OS windowsXP CPU AMD Sempron 2.2GHz グラボ SiS製16MB (オンボード メモリ 256MB 使用言語:HSP 製作中ver:v1_0_32製作打ち切り ダウンロードページ(DLの方法変更について重要なお知らせがあります スクリーンショット リリースver情報(ヘルプはこちら Sample Game v1_0_31 Sample Game v1_0_29 Sample Game v1_0_27 Sample Game v1_0_25 Sample Game v1_0_21 Sample Game v1_0_19 未リリースver情報 Sample Game v1_0_30 Sample Game v1_0_28 Sample Game v1_0_26 バグ情報 and 未実装(各ver毎でゎ分かりにくぃ為、こちらにまとめますっ Sample Game info ご意見・ご感想・バグ報告などありましたらこちらへ コメントでゎかなり場所を取ってしまぅので掲示板レンタルしました ペコリ(o_ _)o)) かふぇ掲示板
https://w.atwiki.jp/sampleisbest/pages/555.html
開発環境 Microsoft Visual Studio Community 2017 実行環境 Microsoft Windows 10 Home (64bit) プロジェクトの種類 Visual C++/空のプロジェクト プロジェクト名 FontSample FontSample.cpp // Unicode文字セット #include Windows.h #include windowsx.h #include set #include string #include "Resource.h" using namespace std; typedef set wstring STRLIST; // 関数プロトタイプ宣言 INT_PTR CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); void OnInitDialog(HWND hDlg); void OnDrawItem(LPARAM lParam); int CALLBACK EnumFontFamExProc(const LOGFONT *lpelfe, const TEXTMETRIC *lpntme, DWORD FontType, LPARAM lParam); void Redraw(); // 外部変数 STRLIST facenames; HWND hMainDlg; int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) { DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAINDLG), NULL, DlgProc); return 0; } INT_PTR CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { INT_PTR ret = TRUE; switch (uMsg) { case WM_DRAWITEM OnDrawItem(lParam); break; case WM_COMMAND WORD cid; cid = LOWORD(wParam); switch (cid) { case IDC_FACENAME switch (HIWORD(wParam)) { case LBN_SELCHANGE Redraw(); break; } break; case IDOK Redraw(); break; case IDCANCEL EndDialog(hDlg, LOWORD(wParam)); break; default ret = FALSE; } break; case WM_INITDIALOG hMainDlg = hDlg; OnInitDialog(hDlg); return FALSE; default ret = FALSE; } return ret; } void OnInitDialog(HWND hDlg) { SetDlgItemText(hDlg, IDC_SAMPLE, L"東京都千代○区\r\n永○町1丁目10ー1\r\n\r\n図書 館太郎様\r\n 花子様\r\n1ー1-1―-"); SetDlgItemText(hDlg, IDC_HEIGHT, L"50"); HDC hdc = GetDC(NULL); LOGFONT lf = { 0 }; lf.lfCharSet = DEFAULT_CHARSET; EnumFontFamiliesEx(hdc, lf, EnumFontFamExProc, 0, 0); ReleaseDC(NULL, hdc); HWND hList = GetDlgItem(hDlg, IDC_FACENAME); for (auto e facenames) { ListBox_AddString(hList, e.c_str()); } ListBox_SetCurSel(hList, 0); } void OnDrawItem(LPARAM lParam) { LPDRAWITEMSTRUCT pdi = (LPDRAWITEMSTRUCT)lParam; HDC hdc = pdi- hDC; RECT rcView; GetClientRect(pdi- hwndItem, rcView); FillRect(hdc, rcView, GetSysColorBrush(COLOR_WINDOW)); // 書体名 wchar_t facename[256]; HWND hList = GetDlgItem(hMainDlg, IDC_FACENAME); int index = ListBox_GetCurSel(hList); ListBox_GetText(hList, index, facename); bool vert = (facename[0] == L @ ); // 例文 wchar_t buf[256]; GetDlgItemText(hMainDlg, IDC_SAMPLE, buf, _countof(buf)); // フォントの高さ BOOL trans; int height = GetDlgItemInt(hMainDlg, IDC_HEIGHT, trans, TRUE); if (trans == FALSE) { trans = 10; } // フォント作成 LOGFONT lf = { 0 }; lf.lfCharSet = DEFAULT_CHARSET; lf.lfEscapement = (vert ? 2700 0); //lf.lfOrientation = 2700; lf.lfHeight = height; wcscpy_s(lf.lfFaceName, facename); HFONT hFont = CreateFontIndirect( lf); HGDIOBJ hFontOld = SelectObject(hdc, hFont); if (vert) { LPTSTR p = buf; for (int x = rcView.right; ; x -= abs(height)) { LPTSTR n = wcsstr(p, L"\r\n"); if (n) { *n = 0; TextOut(hdc, x, 0, p, wcslen(p)); p = n + 2; } else { TextOut(hdc, x, 0, p, wcslen(p)); break; } } } else { DrawText(hdc, buf, -1, rcView, 0); } SelectObject(hdc, hFontOld); DeleteObject(hFont); } int CALLBACK EnumFontFamExProc(const LOGFONT *lpelfe, const TEXTMETRIC *lpntme, DWORD FontType, LPARAM lParam) { if (facenames.find(lpelfe- lfFaceName) == facenames.end()) { facenames.insert(lpelfe- lfFaceName); } return TRUE; } void Redraw() { RedrawWindow(GetDlgItem(hMainDlg, IDC_PREVIEW), NULL, NULL, RDW_INVALIDATE); } Resource.h #define IDD_MAINDLG100 #define IDC_FACENAME101 #define IDC_SAMPLE102 #define IDC_HEIGHT103 #define IDC_PREVIEW104 #define IDC_STATIC-1 FontSample.rc #include windows.h #include "resource.h" IDD_MAINDLG DIALOGEX 100, 100, 480, 500 //STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_CENTER | WS_SYSMENU | WS_MINIMIZEBOX CAPTION "Font Sample" FONT 9, "MS UI Gothic" BEGIN LISTBOXIDC_FACENAME,10,10,150,400,WS_TABSTOP | WS_VSCROLL EDITTEXTIDC_SAMPLE,10,420,150,45,ES_MULTILINE | WS_VSCROLL LTEXT"Font Height ",IDC_STATIC,10,475,50,14 EDITTEXTIDC_HEIGHT,50,475,50,14, DEFPUSHBUTTON"OK",IDOK,110,475,50,14,WS_GROUP LTEXT"",IDC_PREVIEW,170,10,300,400,WS_BORDER | SS_OWNERDRAW END
https://w.atwiki.jp/japanesehiphop/pages/4543.html
Format Title Artist Label Model Number Release Press 7 DREAMER/SPACE TSUBAME OMAKE CLUB,SONY MUSIC ENTERTAINMENT,ULTRA-VYBE OMKV-009 2019/06/29 - Side Track Title Produce A 1 DREAMER feat.mabanua,HUNGER TSUBAME B 2 SPACE feat.TENDRE TSUBAME PERTAIN RECORD AMAZON DREAMER feat.mabanua HUNGER/SPACE feat.TENDRE [Analog] HMV TSUBAME/Dreamer Feat. Mabanua & Hunger / Space Feat. Tendre (Ltd) PERTAIN CD AMAZON THE PRESENT HMV TSUBAME/Present
https://w.atwiki.jp/sample112/pages/11.html
aaaaaaaaaaaaa 名前 コメント aaaaaaaa -- satoshi (2007-05-15 18 07 12)